草庐IT

C++ Qt : Check the current State of QStateMachine

全部标签

QT基础:event 函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式功能演示

这里演示的是QT基础,主要包含:event函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式等功能演示,适合初学者食用。演示功能:点击鼠标左键、右键、中键、左右键同时点击,输出鼠标当前坐标;按下鼠标中键,鼠标样式被替换,按下鼠标左键,鼠标样式恢复默认 鼠标事件重载,这里暂时不放出来了1、打开QT创建一个widget项目UI上随便画一点东西备用,不画也行,我这里创建的是mainwindow项目 2、代码演示,篇幅原因就不放头文件了,这里的代码全部写在了cpp当中初学者应该可以完全复制该代码,到自己的demo里面的,注意头文件需要声明一些东西同时也可以尝试注释一些代码,演示的时候

qt 获取登录界面账号和密码

 #include"widget.h"#include"ui_widget.h"#includeWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);connect(ui->pushButton,&QPushButton::clicked,this,[=](intstate){qDebug()lineEdit_2->text();QStringpassword=ui->lineEdit->text();qDebug()

Qt源码阅读(五)-deleteLater

QtdeleteLater作用及源码分析个人经验总结,如有错误或遗漏,欢迎各位大佬指正🥳在本篇文章中,我们将深入分析源码,探讨deleteLater的原理。deleteLater是Qt框架提供的一个重要函数,用于在事件循环中延迟删除对象。在软件开发中,延迟删除对象的概念是非常重要的,特别是当对象不再被需要,但由于某些原因(比如对象正在被访问、事件循环中仍有关于该对象的事件等),不能立即删除。deleteLater函数提供了一种机制,可以将对象的删除操作延迟执行,从而避免了可能的悬空指针和资源泄漏问题。在本文中,我们将深入研究源码,揭示deleteLater函数的工作原理。我们将分析QCoreA

Qt窗口设置无边框不能移动,鼠标穿透后不能响应点击事件

思路实现  最近在做一个迷你小工具,准备干点不可描述的事情,想要短小强悍,始终在最顶层显示,同时不要自带的关闭按钮和边框,百度一下,发现是需要设置如下两个属性:setWindowFlags(Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);  那么问题来了,这样的话一运行窗体就在正中间,而且无法拖动,就像这样  哪怕对于我这种小卡拉米来说也是无法忍受的,毕竟是一去、二三里的铁杆粉丝,不能给他丢人,一个字干!  首先呢,想到的是重写鼠标的点击事件,释放事件,我这里写的比较简洁使用,网上很多写的有点复杂了,两个函数的声明和定义如下widget.hp

Qt 多线程的几种实现方式

Qt多线程的实现方式有:1.继承QThread类,重写run()方法2.使用moveToThread将一个继承QObject的子类移至线程,内部槽函数均在线程中执行3.使用QThreadPool,搭配QRunnable(线程池)4.使用QtConcurrent(线程池)为什么要用线程池?创建和销毁线程需要和OS交互,少量线程影响不大,但是线程数量太大,势必会影响性能,使用线程池可以减少这种开销。一、继承QThread类,重写run()方法缺点:  1.每次新建一个线程都需要继承QThread,实现一个新类,使用不太方便。  2.要自己进行资源管理,线程释放和删除。并且频繁的创建和释放会带来比较

问题:This application failed to start because no Qt platform plugin could be initialized. Reinstalling

错误提示:ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialized.Reinstallingtheapplicationmayfixthisproblem.翻译:此应用程序无法启动,因为无法初始化任何Qt平台插件。重新安装应用程序可以解决此问题。解决办法:从"Python\Python311\Lib\site-packages"中,把"PyQt5"和"pyqt5_plugins"两个文件夹复制到Python\Python311\Lib安装目录下。 例如:从"C:\Users\Administrator\App

QT - QML 遇到 module “QtQuick.Controls“ version 2.5 is not installed 的相关问题的解决策略

问题由来,在跟着视频敲代码时,需要用到DelayButton这个控件,因此需要导入相关的库模块(跟着视频敲的是importQtQuick.Controls2.5),但可能由于版本较低的原因没有安装这个库模块。根据输入提示,有个importQtQuick.Controls2.1,但是,这个库模块中并不支持DelayButton这个控件。于是,使用更高一些的版本(QT5.9)去尝试打开,还是没有装2.5,但是,此时DelayButton这个控件变了颜色,通过F1进行跳转进去查看介绍后,发现,于是,调整为2.4后,程序可运行。然后再次使用低版本的QT打开(QT5.9),2.4也没有,但是可用F1进行

Qt程序打包exe

Qt程序打包exe教程步骤一:Release编译步骤二:将步骤一生成的Release文件夹中的exe文件单独拷贝到另一个文件夹,如D:\ProgramFiles\UI步骤三:打开命令行工具步骤四:在命令行中首先将路径定位到步骤二中存放exe文件的文件夹:cdD:\ProgramFiles\UI,然后使用windeployqt工具命令:D:\Qt2\5.14.1\mingw73_64\bin\windeployqtUI.exe进行打包,之后可以在文件夹中看到其他的依赖文件,就可以将这个文件夹打包发布了。

MAC安装并配置Qt(超级简单版)

1.安装brew(若已安装brew可跳过这一步)前往Brew官网,按照官网介绍的安装方式安装,或直接复制下面这段代码放到终端进行安装。/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"2.安装qtbrewinstallqt3.安装qtcreaterbrewinstall--caskqt-creator若已安装过可运行下面的代码brewreinstall--caskqt-creator4.配置环境点击添加,然后输入command+shift+g,输入文件件地址其中6

QT中将 子窗口添加到父窗口中,并实现子窗口随父窗口大小伸缩。

设计师方法在主窗口的 ui中在MW ui中,整一个layout部件;以及主窗口的其他部件一起都在MW(MainWindow)中,首先进行局部布局;然后,点击 MW ui再次进行 水平/垂直/..布局:这步重要,否则,子窗口就无法跟随主窗口一起进行缩放。在 mainwindow.cpp嵌入子窗口ui->xxxLayout->addWidget(子窗口),就行了。例如tableWidget大小随窗口大小动态适应(非原文,这里已经更新)//水平方向:表格充满布局ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView: